package redis

import (
	"Forum/settings"
	"fmt"
	"github.com/go-redis/redis"
)

// rdb 是全局的 Redis 客户端实例
var rdb *redis.Client

// Init 初始化 Redis 客户端
// 参数 cfg 是 Redis 服务器的配置信息
// 返回可能的错误
func Init(cfg *settings.RedisConfig) (err error) {
	// 根据配置信息创建 Redis 客户端实例
	rdb = redis.NewClient(&redis.Options{
		Addr: fmt.Sprintf("%s:%d",
			cfg.Host,
			cfg.Port,
		),
		Password: cfg.Password,
		DB:       cfg.DB,
		PoolSize: cfg.PoolSize,
	})

	// 测试连接是否成功
	_, err = rdb.Ping().Result()
	return
}

// Close 关闭 Redis 客户端连接
func Close() {
	_ = rdb.Close()
}
